home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 2
/
Gekikoh Dennoh Club Vol. 2 (Japan).7z
/
Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin
/
tools
/
cd2pcmt
/
source.lzh
/
cd2pcm.h
< prev
next >
Wrap
Text File
|
1997-09-30
|
6KB
|
188 lines
/* #define DEBUG 0 */
/* #define DEBUG1 0 */
#define DEF_SCSI_ID 6 /* デフォルトSCSI-ID */
#define cd_演奏開始 0
#define cd_演奏開始_ALL 1
#define cd_演奏中断 2
#define cd_演奏再開 3
#define cd_演奏情報 4
#define cd_演奏リスト 5
#define cd_取り込み 6
#define cd_取り込み2 7
#define cd_演奏開始2 8
//#define CDPCM_LEN 44100*4 /* CDPCM 1秒分のワークレングス */
//#define PCM_LEN 15600*2 /* PCM 1秒分のワークレングス */
//#define ADPCM_LEN 15600/2 /* ADPCM 1秒分ワークレングス */
#define CONVERT_PCMR 1 /* 44.1KHz 16BIT モノラル R */
#define CONVERT_PCML 2 /* 44.1KHz 16BIT モノラル L */
#define CONVERT_PCMM 3 /* 44.1KHz 16BIT ミキシング */
#define CONVERT_PCM15 4 /* pcm15 mode */
#define CONVERT_WAVE 5 /* 44.1KHz 16BIT ステレオ intel */
#define CONVERT_PCMA 6 /* 44.1KHz ADPCM */
#define CONVERT_A88 7 /* 88.2KHz ADPCM */
#define CONVERT_R (0)
#define CONVERT_L (1)
#define CONVERT_M (2)
#define CONVERT_AVE_R (3)
#define CONVERT_AVE_L (4)
#define CONVERT_AVE_M (5)
#define PF 0x10 /* ページフォーマット */
#define SP 0x01 /* セーブパラメータ */
#define CD_CDU561 0 /* SONY CDU-561 */
#define TOSHIBATYPE 1 /* SONY CDU-561 */
#define SONYTYPE 0 /* TOSHIBA */
#define CUP "\x0b"
//#define CFC "\x1b[0K"
#define CFC "\x1b[0J"
/*------------------------------*/
/* 関数 prototype */
/*------------------------------*/
void cd_play( int, int );
void cd_play2( int, int, int );
void cd_play_all( void );
void cd_play_pause( void );
void cd_play_resume( void );
void cd_play_inf( void );
void cd_play_list( void );
void cdda2pcm( int, int, int );
int RedTOC(int *, int *, int * );
int scsi_cmd( int , unsigned char *, int , unsigned char * );
int Music_inf(int , int* );
int PlyDsk( int, int );
int StpDsk( void );
int Resume( void );
int ReadSub( unsigned char * );
void cd2pcm_help( void );
int bin2time( int );
int time2bin( int );
int adr2time( int );
void convert( int );
void cdda_error( int );
void AbortDisp( void );
/*------------------------------*/
/* 構造体 */
/*------------------------------*/
typedef struct {
int fg; /* 状態 0x11 演奏中,0x12 演奏中断 */
int track_no; /* 曲番号 */
int time; /* 現在の演奏時間 */
int address; /* 演奏アドレス */
} PLYINF;
/*-------------------------------------------
以下CDC用
--------------------------------------------*/
int CDC_CHK();
int CDC_CALL();
struct CDC_STAT_PTR {
short CDIN; // 0;NoCD 1;SetCD
int PLAYINF; // 状態 0x11;演奏中,0x12;一時停止,0x13;停止
int TRAKNO; // 曲番号
int PLAYTIME; // 演奏中の曲の経過時間 (MSF型)
int CDLONG; // CD絶対総 経過時間 (MSF型)
int TRAKLONG; // 現在演奏曲のながさ (MSF型)
void* CDNAME; // CD名アドレス
void* TRAKNAME; // 曲名アドレス
void* LEDSTR; // LED文字アドレス -----以下LED部に表示される物
int LEDTRAK; // LED数値 曲番号
int LEDNO; // LED数値 1以上;プログラムナンバー
// 0;表示無し -1;MAX= -2;INP= -3;Vol
int LEDTIME; // LED数値 タイム (MSF型)
int LEDSTAT; // LEDの状態
// ┌bit 0 ■:停止
// │bit 1 >:再生
// │bit 2 ||:一時停止
// イズレカ│bit 3 >>:早送り
// └bit 4 <<:巻き戻し
// ┌bit 5 ⊂:オート
// └bit 6 ◯:リピート
// bit 7 R:ランダム
// bit 8 P:メモリー
// (bit 9 B:BGM)
char INKEYNUMH; // 入力されている数値(上)
char INKEYNUML; // 入力されている数値(下)
short LEDTIMEMODE; // LED数値 タイム のモード
// 0;ノーマル
// 1;リバース
// 2;トータル
// 3;トータルリバース
short VOLUME; // Vol数値
short MASTERVOL; // MasterVol数値(0ならボリューム機能無し)
};
struct CDC_TRACKS_PTR {
short CDIN; // 0;NoCD 1;SetCD
int CDCWORKS; // CDC.xの最大記憶数(以下,記憶数)
int CDCTRAK; // CDの曲数
int CDLONG; // CDの全演奏時間 (MSF型)
int CDLISTFG; // CDCLISTにあったか -1ならあった
char CDNAME[40]; // CD名 40-1文字
char WORKS[0]; //
// .dsb.b (記憶数)*40 各曲の名前 40-1文字
// .dsb.l (記憶数) 各曲の演奏時間+拡張曲名flag
// .dsb.l (記憶数) 各曲のスタート時間
// (↑最上位ビットが立っ
// ていれば データトラック)
};
struct CDC_ATRACK_PTR *CDC_ATRACK(int TN);
struct CDC_ATRACK_PTR {
char *NAME; // 各曲の名前 最大 39 文字
int LONG; // 各曲の演奏時間+拡張曲名flag
int START; // 各曲のスタート時間
// (↑最上位ビットが立っ
// ていれば データトラック)
};
struct CDC_PROG_PTR
{
short PROGLONG; // プログラム数
unsigned char PROGNUM[100]; // 曲ナンバー
};
#define CDC_VERSION() CDC_CALL(0x00)
#define CDC_INIT() CDC_CALL(0x01)
#define CDC_STAT() (struct CDC_STAT_PTR *)CDC_CALL(0x02)
#define CDC_TRACKS() (struct CDC_TRACKS_PTR *)CDC_CALL(0x03)
#define CDC_SCSI_CHK() CDC_CALL(0x04)
#define CDC_RELED() CDC_CALL(0x05)
#define CDC_INKEY(KB) CDC_CALL(0x07,KB)
#define CDC_PROG() (struct CDC_PROG_PTR*)CDC_CALL(0x08)
#define CDC_PROGIN(NUM,PGN) CDC_CALL(0x09,NUM,PGN)
#define CDC_PROGOUT() CDC_CALL(0x0A)
#define CDC_PROGTIME() (int*)CDC_CALL(0x0F)
#define CDC_PLAY(ST,ET) CDC_CALL(0x10,ST,ET)
#define CDC_PAUSE() CDC_CALL(0x11)
#define CDC_RESUME() CDC_CALL(0x12)
#define CDC_MVPLAY(OFS) CDC_CALL(0x13,OFS)
#define CDC_BGM(T1,T2,T3,T4) CDC_CALL(0x14,T1,T2,T3,T4)
#define CDC_STOP() CDC_CALL(0x15)
#define PLAYWAIT() CDC_CALL(0x1D)
#define CDC_VOL(VL) CDC_CALL(0x1E,VL)
#define CDC_FADEOUT(SW) CDC_CALL(0x1F,SW)
#define CDC_DRIVE() CDC_CALL(0x30)
#define CDC_MODE(MD) CDC_CALL(0x31,MD)
#define CDC_KEYMODE(MD) CDC_CALL(0x32,MD)
#define CDC_LED(MD) CDC_CALL(0x33,MD)
#define CDC_TIMING(TM) CDC_CALL(0x34,TM)
#define CDC_POWER(MD) CDC_CALL(0x35,MD)
#define CDC_TRACKMODE(MD) CDC_CALL(0x36,MD)
#define CDC_KEYCANSEL(NK) CDC_CALL(0x37,NK)
#define CDC_TIMELED(MD) CDC_CALL(0x38,MD)
#define CDC_LEDXY() CDC_CALL(0x39)
#define CDC_SCSIID() CDC_CALL(0x3a)
#define CDC_EJEEMU() CDC_CALL(0x3b)
#define CDC_CHGLUN(LN) CDC_CALL(0x3c,LN)